"""
Cloud Storage SDK

A unified SDK for interacting with multiple cloud storage providers.

This package provides a consistent interface for working with various cloud storage
services, including Baidu Cloud, Aliyun Cloud, OneDrive, Google Drive, and Tianyi Cloud.
"""

# Import the main factory function and client classes
from .factory import create_cloud_storage_client, CloudStorageClientFactory
from .base.client import CloudStorageClient
from .base.models import (
    LoginCredentials, PersistentLoginInfo, CloudFile, 
    AccountInfo, TrashItem
)
from .base.exceptions import (
    CloudStorageError, AuthException, FileNotFound, NetworkError
)
from .constants import (
     PROVIDER_TIANYI_TV
)

# Version information
__version__ = "0.4.0"
__author__ = "Cloud Storage SDK Team"
__email__ = "team@cloudstoragesdk.com"

# Export the main components
__all__ = [
    # Factory function
    "create_cloud_storage_client",
    "CloudStorageClientFactory",
    
    # Base client
    "CloudStorageClient",
    
    # Data models
    "LoginCredentials",
    "PersistentLoginInfo",
    "CloudFile",
    "AccountInfo",
    "TrashItem",
    
    # Exceptions
    "CloudStorageError",
    "AuthException",
    "FileNotFound",
    "NetworkError",
    
    # Provider constants
    "PROVIDER_BAIDU",
    "PROVIDER_ALIYUN",
    "PROVIDER_ONEDRIVE",
    "PROVIDER_GOOGLE_DRIVE",
    "PROVIDER_TIANYI",
    "PROVIDER_TIANYI_PC",
    "PROVIDER_TIANYI_TV",
]

# Convenience function to get a list of supported providers
def get_supported_providers():
    """
    Get a list of supported cloud storage providers.
    
    Returns:
        list: List of supported provider names
    """
    return CloudStorageClientFactory.get_supported_providers()